//  never类型指不存在的值，如函数因异常结束而没有返回值或者函数永远到达不了return那一步

function error(): never {
  throw new Error('this is error')
}

function infiniteLoop(): never {
  while (true) {
  }
}

//  void类型表示没有任何类型，例如 当一个函数没有返回值时，返回值类型就是void
function fn(): void {
  console.log('log');
}

//  声明一个void的变量没有没有意义，void类型只能被undefined赋值
let v: void
v = undefined
v = null  //ERROR
v = 1 //ERROR